package com.demo.user.service;

import com.demo.user.dao.LoginUserDaoJpa;
import com.demo.user.dto.UserDetailDto;
import com.demo.user.dto.UserDto;
import com.demo.user.dto.UserPageDto;
import com.demo.user.dto.UserPageParamDto;
import com.demo.user.entity.User;
import com.demo.user.util.page.BasePaginationRsp;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiOperation;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

/**
 * 用户(BlUser)表服务接口
 *
 * @author makejava
 * @since 2023-03-24 14:32:24
 */
public interface UserService
{

    /**
     * 静态插入数据:通用方法
     * @param user
     * @return
     */
    public int insertUser(User user);

    /**
     * 动态插入数据: mysql用法，id自增
     * @param user
     * @return
     */
    public int insertUserMysql(User user);

    //mybatis批量插入数据:mysql用法，id自增
    public int mysqlBatchSaveUser(List<User> userEntities);

    //按id查询用户
    public User queryUserById(Long id);

    //查询所有用户
    public List<Map<String, Object>> queryAllUser();

//    /**
//     * 获取分页结果
//     * @param pageNum 页码值
//     * @param pageSize 每页显示条数
//     */
//    public List<User> getPagingResults(int pageNum, int pageSize);

//    /**
//     * 获取分页结果及分页信息
//     * @param pageNum 页码值
//     * @param pageSize 每页显示条数
//     */
//    public PageInfo<User> queryPageInfo(int pageNum, int pageSize);

    //更新数据-改数据
    public int updateUser(User userEntity);

    //删除数据
    public int delUser(Integer id);

    //根据主键查询
    public User selectByPrimaryKey(Long uid);
    //用户详情
    public UserDetailDto detail(Long uid) ;

    /**
     * 用户分页数据
     * @param pageParam
     * @return
     */
    public BasePaginationRsp<UserPageDto> page(UserPageParamDto pageParam) ;

}
